'''
    作者：刘妍
    版本：2.0
    日期：18/05/2020
    1.0功能：计算空气质量指数AQI
    2.0新增功能：读取已经获取的JSON数据文件，并将AQI前5的数据输出到文件

    需求分析：JSON文件已经存在，需要对文件进行操作
    打开JSON文件，将JSON文件中的数据读取到程序中，然后再对数据进行处理
    问题：这是解码过程还是编码过程？
'''

import json

# 自定义函数，解码JSON文件
def read_jsonfile(filepath):
    f = open(filepath, mode='r', encoding='utf-8')
    city_list = json.load(f)
    f.close()
    return city_list


# 自定义函数，将AQI前5的数据输出到文件中
def write_jsonfile(top5_list):
    f = open('top5_aqi.json', mode='w', encoding='utf-8')
    json.dump(top5_list, f, ensure_ascii=False)
    f.close()


def main():
    filepath = input('请输入json文件名称：')
    # 调用解码函数，读取JSON文件
    city_list = read_jsonfile(filepath)
    # 得到升序排列的city_list
    city_list.sort(key=lambda city: city['aqi'])
    top5_list = city_list[:5]

    # 将top5_list的数据输出到文件，也就是写入文件中
    write_jsonfile(top5_list)


if __name__ == '__main__':
    main()